﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using WebPromenadebyenTabeller;
using System.Configuration;
using System.Data.SqlClient;

namespace PromLejlighedDB
{
    public static class LejlighedGateway
     {

        const String CONNECTION_STRING = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\PromDatabase.mdf;Integrated Security=True;User Instance=True";
         
        public static List<Lejligheder> FindAlleLejligheder()
        {
            
            List<Lejligheder> nyListe = new List<Lejligheder>();
            
            //SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

            System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection();
            con.ConnectionString = CONNECTION_STRING;

            con.Open();
           

            System.Data.IDbCommand command = con.CreateCommand();
            command.CommandText = "SELECT * FROM LEJLIGHEDER"; 
            System.Data.IDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                string sLejlighedsID = reader["lejlighedsID"].ToString();
                string sBygningsID = reader["bygningsID"].ToString();
                string sLejlnummer = reader["nummer"].ToString();
                string sLejlSal = reader["sal"].ToString();
                string slejlTHTV = reader["side"].ToString();
                string sMeter2 = reader["stemmer"].ToString();
                

                int lejlighedsID = int.Parse(sLejlighedsID);
                int bygningsID = int.Parse(sBygningsID);
                int lejlnr = int.Parse(sLejlnummer);
                int lejlsal = int.Parse(sLejlSal);
                string lejlthtv = slejlTHTV;
                int lejlstemmer = int.Parse(sMeter2);
                

                Lejligheder nyLejlighed = new Lejligheder(lejlighedsID, bygningsID, lejlnr, lejlsal, lejlthtv, lejlstemmer);
                nyListe.Add(nyLejlighed);
            }

            con.Close();
            return nyListe;
        }
                                                
        public static Lejligheder OpretLejlighed(int bygningsID, int nr, int sal, string thtv, int stemmer)
        {
            Lejligheder nyLejlighed = null;

            //SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

            System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection();
            con.ConnectionString = CONNECTION_STRING;

            con.Open();

            System.Data.IDbCommand command = con.CreateCommand();


            command.CommandText = "INSERT INTO LEJLIGHEDER "
                                    + "(bygningsID, nummer, sal, side, stemmer) VALUES " +
                                    "(" + bygningsID + ", " + nr + ", " + sal + ", " + thtv + ", " + stemmer + ")";
          
            int antalIndsat = command.ExecuteNonQuery();
            if (antalIndsat == 1)
            {
                command.CommandText = "SELECT @@identity AS lastinsertedkey";
                string slastkey = command.ExecuteScalar().ToString();
                int lastkey = int.Parse(slastkey);
                command.CommandText = "SELECT * FROM LEJLIGHEDER " + " WHERE (LEJLIGHEDSID=" + lastkey + ")";
                System.Data.IDataReader reader = command.ExecuteReader();
                if (reader.Read())
                {
                    string sLejlighedsID = reader["lejlighedsID"].ToString();
                    string sLejlnummer = reader["nummer"].ToString();
                    string sLejlSal = reader["sal"].ToString();
                    string slejlTHTV = reader["side"].ToString();
                    string sMeter2 = reader["stemmer"].ToString();
                    string sBygningsID = reader["bygningsID"].ToString();

                    int nylejlighedsID = int.Parse(sLejlighedsID);
                    int nylejlnr = int.Parse(sLejlnummer);
                    int nylejlsal = int.Parse(sLejlSal);
                    string nylejlthtv = slejlTHTV;
                    int nymeter2 = int.Parse(sMeter2);
                    int nybygningsID = int.Parse(sBygningsID);

                    nyLejlighed = new Lejligheder(nylejlighedsID, nybygningsID, nylejlnr, nylejlsal, nylejlthtv, nymeter2);

                }
            }
            con.Close();

            return nyLejlighed;
        }



        public static Lejligheder FindLejlighed(int LejlID)
        {
            //SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

            System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection();
            con.ConnectionString = CONNECTION_STRING;

            con.Open();

            System.Data.IDbCommand command = con.CreateCommand();
            
            command.CommandText = "SELECT * FROM LEJLIGHEDER WHERE (lejlighedsID =" + LejlID + " )";
            System.Data.IDataReader reader = command.ExecuteReader();

            reader.Read();

            

            int lejlighedsID = int.Parse(reader["lejlighedsID"].ToString());
            int bygningsID = int.Parse(reader["bygningsID"].ToString());
            int nummer = int.Parse(reader["nummer"].ToString());
            int sal = int.Parse(reader["sal"].ToString());
            string side = reader["side"].ToString();
            int stemmer = int.Parse(reader["stemmer"].ToString());

            Lejligheder nyLejlighed = new Lejligheder(lejlighedsID, bygningsID, nummer, sal, side, stemmer);

            con.Close();
            return nyLejlighed;
        }





        public static void OpdaterLejlighed(int lejlighedsid, int lejlnr, int lejlsal, string lejlTHTV, int meter2, int bygningsID)
        {
            //SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

            System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection();
            con.ConnectionString = CONNECTION_STRING;

            con.Open();
           
            System.Data.IDbCommand command = con.CreateCommand();
            command.CommandText = "UPDATE LEJLIGHEDER SET "
                                    + "nummer=" + lejlnr + ", sal=" + lejlsal + ", side= '" + lejlTHTV + "', stemmer=" + meter2 + ", bygningsID=" + bygningsID
                                    + " WHERE lejlighedsID=" + lejlighedsid;
            int antalOpdateret = command.ExecuteNonQuery();

            con.Close();
        }



    }
}
